{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f8d41c69-6158-4b39-83c3-5de08bc0d788",
   "metadata": {},
   "outputs": [],
   "source": [
    "import polars as pl\n",
    "from perspective.widget import PerspectiveWidget"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "d8b0bc0b-f7d3-43d8-92ce-4d03740729e0",
   "metadata": {},
   "outputs": [],
   "source": [
    "d1=pl.read_parquet(\"new_share.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "23151541-daf0-4dd5-a299-4cf8c8061400",
   "metadata": {},
   "outputs": [],
   "source": [
    "d2=pl.read_parquet(\"stock_basic.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4b5fab64-6268-4399-ae8a-b31ffae14c41",
   "metadata": {},
   "outputs": [],
   "source": [
    "d1=d1.with_columns(\n",
    "    ipo_date=pl.col.ipo_date.str.to_date(\"%Y%m%d\"),\n",
    "    issue_date=pl.col.ipo_date.str.to_date(\"%Y%m%d\"),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ae3fd4a6-ce3d-4657-a44d-6f9e5fc4c429",
   "metadata": {},
   "outputs": [],
   "source": [
    "config='{\"version\":\"3.6.0\",\"plugin\":\"Datagrid\",\"plugin_config\":{\"columns\":{},\"edit_mode\":\"READ_ONLY\",\"scroll_lock\":false},\"columns_config\":{\"ipo_date\":{\"datetime_color_mode\":\"foreground\"},\"上网发行比\":{\"number_format\":{\"style\":\"percent\",\"minimumFractionDigits\":2.0,\"maximumFractionDigits\":2.0}},\"price\":{\"number_format\":{\"style\":\"currency\",\"currency\":\"USD\",\"minimumFractionDigits\":1.0,\"maximumFractionDigits\":2.0}},\"name\":{\"format\":\"bold\",\"string_color_mode\":\"background\",\"color\":\"#fffb00\"},\"issue_date\":{\"date_format\":{\"dateStyle\":\"medium\"}},\"amount\":{\"pos_fg_color\":\"#e32400\",\"neg_fg_color\":\"#00fdff\",\"pos_bg_color\":\"#0433ff\",\"neg_bg_color\":\"#b51a00\",\"number_format\":{\"minimumFractionDigits\":0.0,\"maximumFractionDigits\":2.0}}},\"settings\":true,\"theme\":\"Pro Light\",\"title\":null,\"group_by\":[],\"split_by\":[],\"sort\":[[\"limit_amount\",\"asc\"]],\"filter\":[],\"expressions\":{\"上网发行比\":\"\\\"market_amount\\\"/\\\"amount\\\"\",\"New Column 1\":\"\\\"market_amount\\\"\"},\"columns\":[\"ts_code\",\"sub_code\",\"name\",\"ipo_date\",\"issue_date\",\"上网发行比\",\"amount\",\"market_amount\",\"price\",\"pe\",\"limit_amount\",\"funds\",\"ballot\",\"New Column 1\"],\"aggregates\":{}}'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "25b0e864-8e9a-4739-ab16-67a94ff9bf9a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\"version\":\"3.6.0\",\"plugin\":\"Datagrid\",\"plugin_config\":{\"columns\":{},\"edit_mode\":\"READ_ONLY\",\"scroll_lock\":false},\"columns_config\":{\"ipo_date\":{\"datetime_color_mode\":\"foreground\"},\"上网发行比\":{\"number_format\":{\"style\":\"percent\",\"minimumFractionDigits\":2.0,\"maximumFractionDigits\":2.0}},\"price\":{\"number_format\":{\"style\":\"currency\",\"currency\":\"USD\",\"minimumFractionDigits\":1.0,\"maximumFractionDigits\":2.0}},\"name\":{\"format\":\"bold\",\"string_color_mode\":\"background\",\"color\":\"#fffb00\"},\"issue_date\":{\"date_format\":{\"dateStyle\":\"medium\"}},\"amount\":{\"pos_fg_color\":\"#e32400\",\"neg_fg_color\":\"#00fdff\",\"pos_bg_color\":\"#0433ff\",\"neg_bg_color\":\"#b51a00\",\"number_format\":{\"minimumFractionDigits\":0.0,\"maximumFractionDigits\":2.0}}},\"settings\":true,\"theme\":\"Pro Light\",\"title\":null,\"group_by\":[],\"split_by\":[],\"sort\":[[\"limit_amount\",\"asc\"]],\"filter\":[],\"expressions\":{\"上网发行比\":\"\"market_amount\"/\"amount\"\",\"New Column 1\":\"\"market_amount\"\"},\"columns\":[\"ts_code\",\"sub_code\",\"name\",\"ipo_date\",\"issue_date\",\"上网发行比\",\"amount\",\"market_amount\",\"price\",\"pe\",\"limit_amount\",\"funds\",\"ballot\",\"New Column 1\"],\"aggregates\":{}}\n"
     ]
    }
   ],
   "source": [
    "print(config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c87fe806-8368-465d-991e-f7105168bcfa",
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b7dcecbe-3567-4c32-af23-ec2f8aba616c",
   "metadata": {},
   "outputs": [],
   "source": [
    "config2=Path(\"/Users/sjy/Desktop/untitled.config.json\").read_text(encoding=\"utf8\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ab4462e6-5469-4cb9-b632-3e76f10098ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "config==config2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2a1984fe-c0dd-4d13-828a-c905ffc24bfe",
   "metadata": {},
   "outputs": [],
   "source": [
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "feebb1db-4d7a-4c8a-8f00-358a59050752",
   "metadata": {},
   "outputs": [],
   "source": [
    "d=json.loads(config2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "24079e6c-5f0d-420d-b144-52e463dcaf61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'ipo_date': {'datetime_color_mode': 'foreground'},\n",
       " '上网发行比': {'number_format': {'style': 'percent',\n",
       "   'minimumFractionDigits': 2.0,\n",
       "   'maximumFractionDigits': 2.0}},\n",
       " 'price': {'number_format': {'style': 'currency',\n",
       "   'currency': 'USD',\n",
       "   'minimumFractionDigits': 1.0,\n",
       "   'maximumFractionDigits': 2.0}},\n",
       " 'name': {'format': 'bold',\n",
       "  'string_color_mode': 'background',\n",
       "  'color': '#fffb00'},\n",
       " 'issue_date': {'date_format': {'dateStyle': 'medium'}},\n",
       " 'amount': {'pos_fg_color': '#e32400',\n",
       "  'neg_fg_color': '#00fdff',\n",
       "  'pos_bg_color': '#0433ff',\n",
       "  'neg_bg_color': '#b51a00',\n",
       "  'number_format': {'minimumFractionDigits': 0.0,\n",
       "   'maximumFractionDigits': 2.0}}}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d[\"columns_config\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "91cddc12-fdbe-4fde-8a76-59e6dc880689",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'version': '3.6.0',\n",
       " 'plugin': 'Datagrid',\n",
       " 'plugin_config': {'columns': {},\n",
       "  'edit_mode': 'READ_ONLY',\n",
       "  'scroll_lock': False},\n",
       " 'columns_config': {'ipo_date': {'datetime_color_mode': 'foreground'},\n",
       "  '上网发行比': {'number_format': {'style': 'percent',\n",
       "    'minimumFractionDigits': 2.0,\n",
       "    'maximumFractionDigits': 2.0}},\n",
       "  'price': {'number_format': {'style': 'currency',\n",
       "    'currency': 'USD',\n",
       "    'minimumFractionDigits': 1.0,\n",
       "    'maximumFractionDigits': 2.0}},\n",
       "  'name': {'format': 'bold',\n",
       "   'string_color_mode': 'background',\n",
       "   'color': '#fffb00'},\n",
       "  'issue_date': {'date_format': {'dateStyle': 'medium'}},\n",
       "  'amount': {'pos_fg_color': '#e32400',\n",
       "   'neg_fg_color': '#00fdff',\n",
       "   'pos_bg_color': '#0433ff',\n",
       "   'neg_bg_color': '#b51a00',\n",
       "   'number_format': {'minimumFractionDigits': 0.0,\n",
       "    'maximumFractionDigits': 2.0}}},\n",
       " 'settings': True,\n",
       " 'theme': 'Pro Light',\n",
       " 'title': None,\n",
       " 'group_by': [],\n",
       " 'split_by': [],\n",
       " 'sort': [['limit_amount', 'asc']],\n",
       " 'filter': [],\n",
       " 'expressions': {'上网发行比': '\"market_amount\"/\"amount\"',\n",
       "  'New Column 1': '\"market_amount\"'},\n",
       " 'columns': ['ts_code',\n",
       "  'sub_code',\n",
       "  'name',\n",
       "  'ipo_date',\n",
       "  'issue_date',\n",
       "  '上网发行比',\n",
       "  'amount',\n",
       "  'market_amount',\n",
       "  'price',\n",
       "  'pe',\n",
       "  'limit_amount',\n",
       "  'funds',\n",
       "  'ballot',\n",
       "  'New Column 1'],\n",
       " 'aggregates': {}}"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8f95a66e-6c26-4b76-83f8-d271bf9f6678",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2769f29b90fe41b8b8936dc97a6656a8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(d1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1fac8f48-c732-49f2-9222-a96defbfaf3c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3feaf49c-f0f9-4b32-a437-b44237238a23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2000, 12)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d1.shape"
   ]
  },
  {
   "cell_type": "raw",
   "id": "dfbb4537-b386-4736-a5c5-b781d35e4c9a",
   "metadata": {},
   "source": [
    "PerspectiveWidget(d1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "97e2e500-7955-417b-b697-a829c63d3842",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "210ecc0ec34f4ccc9c7c1bb57e43ef80",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'symbol', 'name', 'area', 'industry'], table_name…"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(d2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "de8c484a-6378-4b05-a988-5e3d81401f56",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>\n",
       ".dataframe > thead > tr,\n",
       ".dataframe > tbody > tr {\n",
       "  text-align: right;\n",
       "  white-space: pre-wrap;\n",
       "}\n",
       "</style>\n",
       "<small>shape: (1_985, 16)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>ts_code</th><th>sub_code</th><th>name</th><th>ipo_date</th><th>issue_date</th><th>amount</th><th>market_amount</th><th>price</th><th>pe</th><th>limit_amount</th><th>funds</th><th>ballot</th><th>symbol</th><th>name_right</th><th>area</th><th>industry</th></tr><tr><td>str</td><td>str</td><td>str</td><td>date</td><td>date</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>str</td><td>str</td><td>str</td><td>str</td></tr></thead><tbody><tr><td>&quot;001201.SZ&quot;</td><td>&quot;001201&quot;</td><td>&quot;东瑞股份&quot;</td><td>2021-04-14</td><td>2021-04-14</td><td>3167.0</td><td>2850.0</td><td>63.38</td><td>11.78</td><td>1.25</td><td>20.072</td><td>0.02</td><td>&quot;001201&quot;</td><td>&quot;东瑞股份&quot;</td><td>&quot;广东&quot;</td><td>&quot;农业综合&quot;</td></tr><tr><td>&quot;001202.SZ&quot;</td><td>&quot;001202&quot;</td><td>&quot;炬申股份&quot;</td><td>2021-04-19</td><td>2021-04-19</td><td>3224.0</td><td>2902.0</td><td>15.09</td><td>22.99</td><td>1.25</td><td>4.865</td><td>0.02</td><td>&quot;001202&quot;</td><td>&quot;炬申股份&quot;</td><td>&quot;广东&quot;</td><td>&quot;仓储物流&quot;</td></tr><tr><td>&quot;001203.SZ&quot;</td><td>&quot;001203&quot;</td><td>&quot;大中矿业&quot;</td><td>2021-04-20</td><td>2021-04-20</td><td>21894.0</td><td>19705.0</td><td>8.98</td><td>22.99</td><td>6.55</td><td>19.661</td><td>0.07</td><td>&quot;001203&quot;</td><td>&quot;大中矿业&quot;</td><td>&quot;内蒙&quot;</td><td>&quot;普钢&quot;</td></tr><tr><td>&quot;001205.SZ&quot;</td><td>&quot;001205&quot;</td><td>&quot;盛航股份&quot;</td><td>2021-04-28</td><td>2021-04-28</td><td>3007.0</td><td>2706.0</td><td>16.52</td><td>17.78</td><td>1.2</td><td>4.967</td><td>0.02</td><td>&quot;001205&quot;</td><td>&quot;盛航股份&quot;</td><td>&quot;江苏&quot;</td><td>&quot;水运&quot;</td></tr><tr><td>&quot;001206.SZ&quot;</td><td>&quot;001206&quot;</td><td>&quot;依依股份&quot;</td><td>2021-05-06</td><td>2021-05-06</td><td>2358.0</td><td>2123.0</td><td>44.6</td><td>22.99</td><td>0.9</td><td>10.518</td><td>0.02</td><td>&quot;001206&quot;</td><td>&quot;依依股份&quot;</td><td>&quot;天津&quot;</td><td>&quot;造纸&quot;</td></tr><tr><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td></tr><tr><td>&quot;920111.BJ&quot;</td><td>&quot;920111&quot;</td><td>&quot;聚星科技&quot;</td><td>2024-10-29</td><td>2024-10-29</td><td>4465.0</td><td>3106.0</td><td>6.25</td><td>13.23</td><td>184.44</td><td>2.791</td><td>0.07</td><td>&quot;920111&quot;</td><td>&quot;聚星科技&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;920116.BJ&quot;</td><td>&quot;920116&quot;</td><td>&quot;星图测控&quot;</td><td>2024-12-24</td><td>2024-12-24</td><td>3163.0</td><td>2200.0</td><td>6.92</td><td>15.55</td><td>130.62</td><td>2.188</td><td>0.04</td><td>&quot;920116&quot;</td><td>&quot;星图测控&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;920118.BJ&quot;</td><td>&quot;920118&quot;</td><td>&quot;太湖远大&quot;</td><td>2024-08-13</td><td>2024-08-13</td><td>730.0</td><td>584.0</td><td>17.0</td><td>11.8</td><td>34.67</td><td>1.241</td><td>0.09</td><td>&quot;920118&quot;</td><td>&quot;太湖远大&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;920128.BJ&quot;</td><td>&quot;920128&quot;</td><td>&quot;胜业电气&quot;</td><td>2024-11-18</td><td>2024-11-18</td><td>2070.0</td><td>1440.0</td><td>9.12</td><td>16.51</td><td>85.5</td><td>1.888</td><td>0.05</td><td>&quot;920128&quot;</td><td>&quot;胜业电气&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;689009.SH&quot;</td><td>&quot;795009&quot;</td><td>&quot;九号公司&quot;</td><td>2020-10-19</td><td>2020-10-19</td><td>7041.0</td><td>1803.0</td><td>18.94</td><td>0.0</td><td>1.15</td><td>13.335</td><td>0.04</td><td>&quot;689009&quot;</td><td>&quot;九号公司-WD&quot;</td><td>&quot;北京&quot;</td><td>&quot;摩托车&quot;</td></tr></tbody></table></div>"
      ],
      "text/plain": [
       "shape: (1_985, 16)\n",
       "┌───────────┬──────────┬──────────┬────────────┬───┬────────┬─────────────┬──────┬──────────┐\n",
       "│ ts_code   ┆ sub_code ┆ name     ┆ ipo_date   ┆ … ┆ symbol ┆ name_right  ┆ area ┆ industry │\n",
       "│ ---       ┆ ---      ┆ ---      ┆ ---        ┆   ┆ ---    ┆ ---         ┆ ---  ┆ ---      │\n",
       "│ str       ┆ str      ┆ str      ┆ date       ┆   ┆ str    ┆ str         ┆ str  ┆ str      │\n",
       "╞═══════════╪══════════╪══════════╪════════════╪═══╪════════╪═════════════╪══════╪══════════╡\n",
       "│ 001201.SZ ┆ 001201   ┆ 东瑞股份 ┆ 2021-04-14 ┆ … ┆ 001201 ┆ 东瑞股份    ┆ 广东 ┆ 农业综合 │\n",
       "│ 001202.SZ ┆ 001202   ┆ 炬申股份 ┆ 2021-04-19 ┆ … ┆ 001202 ┆ 炬申股份    ┆ 广东 ┆ 仓储物流 │\n",
       "│ 001203.SZ ┆ 001203   ┆ 大中矿业 ┆ 2021-04-20 ┆ … ┆ 001203 ┆ 大中矿业    ┆ 内蒙 ┆ 普钢     │\n",
       "│ 001205.SZ ┆ 001205   ┆ 盛航股份 ┆ 2021-04-28 ┆ … ┆ 001205 ┆ 盛航股份    ┆ 江苏 ┆ 水运     │\n",
       "│ 001206.SZ ┆ 001206   ┆ 依依股份 ┆ 2021-05-06 ┆ … ┆ 001206 ┆ 依依股份    ┆ 天津 ┆ 造纸     │\n",
       "│ …         ┆ …        ┆ …        ┆ …          ┆ … ┆ …      ┆ …           ┆ …    ┆ …        │\n",
       "│ 920111.BJ ┆ 920111   ┆ 聚星科技 ┆ 2024-10-29 ┆ … ┆ 920111 ┆ 聚星科技    ┆ null ┆ null     │\n",
       "│ 920116.BJ ┆ 920116   ┆ 星图测控 ┆ 2024-12-24 ┆ … ┆ 920116 ┆ 星图测控    ┆ null ┆ null     │\n",
       "│ 920118.BJ ┆ 920118   ┆ 太湖远大 ┆ 2024-08-13 ┆ … ┆ 920118 ┆ 太湖远大    ┆ null ┆ null     │\n",
       "│ 920128.BJ ┆ 920128   ┆ 胜业电气 ┆ 2024-11-18 ┆ … ┆ 920128 ┆ 胜业电气    ┆ null ┆ null     │\n",
       "│ 689009.SH ┆ 795009   ┆ 九号公司 ┆ 2020-10-19 ┆ … ┆ 689009 ┆ 九号公司-WD ┆ 北京 ┆ 摩托车   │\n",
       "└───────────┴──────────┴──────────┴────────────┴───┴────────┴─────────────┴──────┴──────────┘"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=d1.join(d2,on=\"ts_code\",how=\"inner\")\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "a7b0476b-181a-4e85-a8f0-80f807105226",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ced399e9d7f6432aa0a4ea289f52ea8c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "5ab8e29f-fd4a-4433-888d-b7863decbd27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d1be98e091a34e72bfc8e04ddb25f99b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e3c2a57b-60b8-413d-acb5-fac29dd0532e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "72afe6df22e641efa10cc9ab42abfef8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "fee1323b-35d8-4c9c-8517-b72f83ea5d5d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a79d73585e464534b869e567edc3cef3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d1453e9f-8545-4fe4-af94-522544a35392",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
